/**
 * @properties={typeid:35,uuid:"F53D43DB-E59E-46DA-8980-F81B9E8742CB",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:35,uuid:"2036298A-CF04-47B4-8D05-1CF3A06A9CDB",variableType:4}
 */
var found = 0;

/**
 * @properties={typeid:35,uuid:"B8D1AC19-57C8-4D01-948B-2CB125ADBAC1",variableType:4}
 */
var nota = null;

/**
 * @properties={typeid:35,uuid:"61E82FE4-83F6-46BE-8464-544C60AACF92",variableType:6}
 */
var vporc_iva = 0;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"D3B4BF0B-E88A-4D63-9233-18818C8049A7"}
 */
function confirmar(event) {
	totalizar()
 
 if (globals.gtotal_detalle <= 0)
 {
	 	globals.gMensaje="El importe a liquidar es erróneo = " + globals.gtotal_detalle
		globals.gMensajes()
 }
 else
 {
	// setea porcentaje de IVA
	if (tasa_iva_id != null)
	{
 		vporc_iva= liq_cabecera_to_tasa_iva.tasa_iva_porc
 	}
 	else
	{
 		globals.gMensaje = 'Tasa de IVA no definida'
	   	globals.gMensajes();
	   	return
	}
	 // si es letra A pero liquida viajes de exportación el IVA se pone en 0
	if (letra=="A" && globals.gopcion_viajes_exportacion==1)
	{
		vporc_iva=0
	}
	viajes_exportacion=globals.gopcion_viajes_exportacion
	 //// buscar numeracion de liquidación   codigo=11
	var fs_nro_rec = databaseManager.getFoundSet(controller.getServerName(),'numeracion_cl')
	fs_nro_rec.loadAllRecords()
	fs_nro_rec.find()
	fs_nro_rec.sucursal=sucursal
	fs_nro_rec.letra=letra
	fs_nro_rec.cod_comprobante=11   //fac_cabecera_to_tipo_doc.cod_doc_asociado en fac1
	var found=fs_nro_rec.search()
	if (found != 1)
     {	
	   globals.gMensaje = 'Sucursal o Letra o Tipo de comprobante incorrectos al buscar numeracion'
	   globals.gMensajes();
     }
     else
     {	
	  fs_nro_rec.setSelectedIndex(1)
	// 12/10/2010 ==================================================
	  	var nro_aux= fs_nro_rec.ultimo_numero + 1  
	  	if (nota==1)       //1=credito 2=debito
	  	{
			tipo_doc=11;
			nota_aux='Nota de Credito'
	  	}
		else
	  	{
			tipo_doc=12;
			nota_aux='Nota de Debito'
	  	}
		globals.duplicacion_liq_cabecera(letra,sucursal,nro_aux);
		if (globals.gfilas!=0)  // si es cero, la factura no existe
		{ // ya existe , lo rechaza
			globals.gMensaje = 'Ya existe ' + nota_aux + ' de Liquidacion ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000');
			globals.gMensajes();
			return false;
		}
	// 12/10/2010 ==================================================	  
	  fs_nro_rec.ultimo_numero = fs_nro_rec.ultimo_numero + 1
      
	 ////guardar mas datos de liq_cabecera  // es la tabla del form
     	 nro_liquidacion=fs_nro_rec.ultimo_numero
     // sucursal =  es lookup value de rec_cabecera
     // fecha       se llena en iniciar
     // cliente_id  se llena con la valuelist
      	subtotal1=globals.gtotal_detalle
      	subtotal0=subtotal1; // 16/04/2012
      	bonificacion=0       // 20/04/2012
      // TODO ver de donde se iniicializan las sgte 2 variables ???
		var aux_porc_iva = vporc_iva
		var aux_porc_comision = 7
		gastos = 0 
		comision= 0
		//gastos=aux_importe_gastos - lo ingresan x pantalla
		neto= subtotal1 //  (comision + gastos) es = cero
		//iva1_imp= Math.round(neto * aux_porc_iva / 100 * 100) / 100;
		var aux_red = globals.operacion(neto,"*",aux_porc_iva)
		iva1_imp= globals.operacion(aux_red,"/",100)
		iva1_porc=aux_porc_iva
		//tipo_doc=6  //28/07/2010
		if (nota==1)      //28/07/2010  //1=credito 2=debito valuelist de a_modulo_basico_infocom
			tipo_doc=11;  //28/07/2010
		else              //28/07/2010
			tipo_doc=12;  //28/07/2010
		//total=globals.redondeo(neto + iva1_imp);
		total= globals.operacion(neto,"+",iva1_imp)
		importe_en_letras=globals.nro_a_letra(total)
	
     //// grabar la nota en ctacte prov // desde la relacion liq_cabecera-proveedor + proveedor-ctactepr 
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()
		
		if (nota==1)
			{
			liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=11 // Nota de crédito
			}
		else
			{
			liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=12 // Nota de débito
			}
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.itc=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=neto
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=  aux_porc_iva
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=iva1_imp
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_percep=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_liquidacion
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retecion_ing_brutos=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retencion_ganancias=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.tasa_iva_id=tasa_iva_id  //27/07/2011 antes movia 1
	//// salvar todo
	var estado=databaseManager.saveData()
	if (estado==true)
	{
	databaseManager.refreshRecordFromDatabase(foundset, 0) // deja el indice correctamente
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_liq_detalle,-1)
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_proveedor.proveedor_to_ctacte_pr,0)  // por el cod de movim no se puede usar relacion directa
	//globals.gMensaje ='Liquidación ' + '\nSucursal ' + sucursal + '\n' + 'Letra ' + letra    + '\nNumero ' + nro_comprobante +  '\nGenerado correctamente' + '\nImprime:'
	globals.gMensaje ='Nota ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_liquidacion,'00000000') +  ' Generada correctamente' + ' Imprime:'
	//plugins.dialogs.showInfoDialog('Generador de Facturas y Notas',  globals.gMensaje,  "OK")
	//var resp = plugins.dialogs.showQuestionDialog( 'Impresion',  '¿Desea imprimir?' ,  'Si', 'No')
	var resp=globals.DIALOGS.showQuestionDialog('Nota',  globals.gMensaje,  "Si", "No" )
	if (resp == 'Si')
	{
		es_preview = 1 //26/07/2010
		forms.liq_cabecera_imp.controller.showPrintPreview(true)
		//forms.rec_cabecera_imp.controller.showPrintPreview(true)	
	}
	else  //26/07/2010
	{ //26/07/2010
	iniciar()
	} //26/07/2010
	}
	else
	{
	globals.gMensaje ='Nota C yD de Liquidación No fue generada '
	globals.DIALOGS.showInfoDialog('Generador de Notas',  globals.gMensaje,  "OK")
	cancelar()
	}
	}
 }
 //var f= 1  // parar debug
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C56C5C78-447D-4F66-9740-F9B142A86646"}
 */
function cancelar(event) {
	databaseManager.rollbackEditedRecords()
	databaseManager.setAutoSave(true)
	iniciar();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"39C0424D-0034-440C-AEE5-2B305ED2AF1A"}
 */
function borra_detalle(event) 
{  //28/07/2010  todo el metodo
var found = liq_cabecera_to_liq_detalle_copy.getSize()
	if (found==0)   
	{
	    globals.gtotal_detalle=0.00
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		liq_cabecera_to_liq_detalle_copy.deleteRecord();
		totalizar();
	}
	}
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"68FAD5FA-ED6F-42E4-AC0E-CE18C9F1484D"}
 */
function iniciar(firstShow, event) {
	globals.autosaveoff();
	controller.newRecord(false);
	fecha = new Date();  
	globals.gtotal_detalle=0.00;
	proveedor_id=0
	globals.gopcion_viajes_exportacion=0
	es_preview = 0; //26/07/2010
	tasa_iva_id = 1 // default 21% 27/07/2011
	}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"17144C5C-70ED-4218-8C1A-2A4292AE7D37"}
 */
function salir_liq(event) {
	if (es_preview== 0) //26/07/2010
	{ //26/07/2010
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
	if (resp == 'Si')
	{
		databaseManager.rollbackEditedRecords()
		databaseManager.setAutoSave(true)
		return true   //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
		//globals.Ira_Principal()
	}
	else
	{
		return false //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
	}
	} //26/07/2010
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"EF4E270A-4F8C-4F3C-B17D-D609D0A9CB22"}
 */
function elige_fletero(oldValue, newValue, event) {
	globals.gtotal_comprob=0.00
	// salvar_fletero: porque perdia en codigo de fletero en el newRecord
	var salvar_fletero=proveedor_id
	// rollback: porque al cambiar de cliente dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos del untilmo recibo de ese cliente en vez de crear uno
	controller.newRecord(false);
	proveedor_id=salvar_fletero
	globals.marca_primer_find = 0
	// letra y sucursal podrían tener que ser calculados dependiendo del tipo_iva del
	// proveedor
	switch( liq_cabecera_to_proveedor.tipo_iva_id )
{
case 1: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
case 6: 
		letra="B"
		vporc_iva=0
		break;
case 8: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
default:
		letra="X"
		vporc_iva=0
}
	sucursal=globals.gSucursal
	fecha=new Date;
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"BDEE6114-29A8-4E1F-82CA-247B8E03C386"}
 */
function agrega_detalle(event) {
	liq_cabecera_to_liq_detalle_copy.newRecord()
	liq_cabecera_to_liq_detalle_copy.viaje_id=0
	liq_cabecera_to_liq_detalle_copy.neto=0
	liq_cabecera_to_liq_detalle_copy.tarifa=0
	liq_cabecera_to_liq_detalle_copy.tarifa_referencia=0  //  16/04/2012
	
}

/**
 *
 * @properties={typeid:24,uuid:"8FFA6913-507B-4907-818A-BCF28A6E4B03"}
 */
function totalizar() 
{  // 28/07/2010  
	globals.gtotal_detalle=0.00
	for ( var i = 1 ; i <= forms.liquidacion_inicial_ncyd.liq_cabecera_to_liq_detalle_copy.getSize(); i++ )
	{
		forms.liquidacion_inicial_ncyd.liq_cabecera_to_liq_detalle_copy.setSelectedIndex(i)
		globals.gtotal_detalle+= forms.liquidacion_inicial_ncyd.liq_cabecera_to_liq_detalle_copy.importe
		forms.liquidacion_inicial_ncyd.liq_cabecera_to_liq_detalle_copy.importe_referencia=forms.liquidacion_inicial_ncyd.liq_cabecera_to_liq_detalle_copy.importe ; //16/04/2012
	}  
}
